from langchain_openai import ChatOpenAI
from globle import envs
from langchain_core.output_parsers import JsonOutputParser
from langchain_core.prompts import PromptTemplate


llm = ChatOpenAI(
    model="deepseek-chat",  # 或具体模型名
    base_url="https://api.deepseek.com/v1",  # DeepSeek API 地址
    temperature = 2.0,
    max_tokens = 32
)

# 想用串链的中心思想，是上一个组件的输出，要能够输入给下一个组件
prompt1 = PromptTemplate.from_template('讲一个关于{topic}的笑话,以json返回 字段 joke:生成的笑话, topic: 原topic')
prompt2 = PromptTemplate.from_template('请将{joke}加一个意想不到的转折，以json返回 字段 final_joke:生成的笑话')

parser = JsonOutputParser()

chain1 = prompt1 | llm | parser
chain2 = prompt2 | llm | parser
chain = chain1 | chain2

# 调用链
r = chain.invoke({"topic": "猫"})
print(r)